#ifndef RECIPE_H_
#define RECIPE_H_

#include <string>
#include "Instructions.h"

// other types
//#include "Instructions.h"				//uncomment once you have added the type definition
using namespace std;

struct Recipe {
public:
	// constructors
	Recipe (int id, string n, Instructions a)	//uncomment once you have added the type definition
		: recipe_id(id), chef_name(n), instr(a) {}

    //Get functions
	int getRecipeId() //return recipe_id
	{return recipe_id;}

	string getChefName() //return chefname
	{return chef_name;}

	Instructions getInstructions() //return Instructions
	{return instr;}

	string getInstructionsString() //return Instructions String representation
	{return instr.display();}

   // utility functions
	string display() const
	{
		Instructions instr2 = instr; //temporary Instructions object. Needed to convert the pointer
		stringstream tempoutput; //make temporary stringstream to return the concatted string
		tempoutput << recipe_id << " , " <<chef_name<< " Instructions :\n " << instr2.display();

		return tempoutput.str();
	}

private:
   //constants

   // private data
	int recipe_id;
	string chef_name;
	Instructions instr;			//uncomment once you have added the type definition
};


#endif //RECIPE_H_
